// let cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1];
// var minCostClimbingStairs = function (cost) {
//     let n = cost.length;
//     // 创建一个长度为 n + 1 的数组 dp 来存储到达每一步的最小代价
//     let dp = new Array(n + 1).fill(0);
//     // 初始化到达第 0 步和第 1 步的代价
//     dp[0] = 0;
//     dp[1] = 0;
//     // 从第 2 步开始计算到达每一步的最小代价
//     for (let i = 2; i <= n; i++) {
//         // 状态转移方程：到达第 i 步的最小代价等于到达第 i - 1 步的最小代价加上从第 i - 1 步到第 i 步的代价
//         // 或者到达第 i - 2 步的最小代价加上从第 i - 2 步到第 i 步的代价，取两者中的最小值
//         dp[i] = Math.min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
//     }
//     // 返回到达楼顶的最小代价
//     return dp[n];
// };
// console.log(minCostClimbingStairs(cost));


let cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
var minCostClimbingStairs = function (cost) {
    n = cost.length
    let db = new Array(n + 1).fill(0)
    db[0] = 0
    db[1] = 0
    for (let i = 2; i <= n; i++) {
        db[i] = Math.min(db[i - 1] + cost[i - 1], db[i - 2] + cost[i - 2])

    }
    return db[n]
};
console.log(minCostClimbingStairs(cost));
